package com.qingniao.hb.dao.impl;

import com.qingniao.hb.dao.UserDao;
import com.qingniao.hb.entity.User;
import com.qingniao.hb.utitls.DruidUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;

import java.sql.SQLException;

/**
 * @author xlzhang
 * @date 2023/4/13 14:41
 */
public class UserDaoImpl implements UserDao {
    // 当前用户操作不会涉及事务，因此，这里可以让工具类自动管理连接对象
    // 所以在创建QueryRunner对象时，传递一个数据库连接池对象(数据源)给他
    private final QueryRunner qr = new QueryRunner(DruidUtils.getDataSource());

    @Override
    public User selectByUsername(String username) throws SQLException {
        // 1. 注册驱动 2. 获取连接对象
        // 3.创建sql操作通道(预编译的操作对象)
        // 4. 执行sql  5. 处理结果集  6. 关闭连接
        String sql = "select * from sys_user where username=?";
        return qr.query(sql, new BeanHandler<>(User.class),username);
    }
}
